#Clase encargada de todo lo relacionado con los cliente como lo es
#cliente nuevos,editarlos,crear sesion, cerrar sesion
class ClientesController < ApplicationController
  # GET /clientes
  # GET /clientes.xml
layout 'application'

  def index
    @clientes = Cliente.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @clientes }
    end
  end

  # GET /clientes/1
  # GET /clientes/1.xml

#  Metodo que muestra toda la informacion del cliente
  def show
#     redirect_to :controller => 'etapas', :action => 'servicio_etapa'
#   redirect_to :controller => 'rest_liq', :action => 'solicitar_apoyo'
#JASIASIAS
    @cliente= Cliente.find(:first, :conditions => [" id = ?",session[:cliente_id] ])
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @cliente }
    end

  end


  # GET /clientes/new
  # GET /clientes/new.xml

#Metodo encargado de pedir los datos basico a los cliente nuevos
#Adicionalmente le hace REQUEST a los datos que devuelve google

  def new
    @email=params['openid.ext1.value.email']
    cliente= Cliente.find(:first, :conditions => [" correo = ?", @email ])
    
    if !cliente
    @cliente = Cliente.new
    @cliente.pagos.build
    @cliente.direccions.build
    @cliente.nombre = params['openid.ext1.value.firstname']
    @cliente.apellido = params['openid.ext1.value.lastname']
    @cliente.correo = params['openid.ext1.value.email']
    @body_tag = '<body onload="initialize()">'
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @cliente }
    end
    else
      redirect_to :controller => 'clientes', :action => 'login'
       flash[:notice] = " El email \"" + @email + "\" esta registrado debe Ingresar como usuario registrado"
    end
  end

  # GET /clientes/1/edit
#  Metodo encargado de editar los datos del cliente
  def edit
    @cliente = Cliente.find(params[:id])
  end

  # POST /clientes
  # POST /clientes.xml

#  Metodo encargado de crear el cliente
  def create
    @cliente = Cliente.new(params[:cliente])

    
    respond_to do |format|
      if @cliente.save
        
        format.html { redirect_to(@cliente, :notice => 'Cliente was successfully created.') }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
         session[:cliente_correo] = @cliente.correo
         session[:cliente_nombre] = @cliente.nombre + " " + @cliente.apellido
         session[:cliente_id] = @cliente.id
         session[:type] = "cliente"
      else
        @body_tag = '<body onload="initialize()">'
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /clientes/1
  # PUT /clientes/1.xml
  def update
    @cliente = Cliente.find(params[:id])

    respond_to do |format|
      if @cliente.update_attributes(params[:cliente])
        format.html { redirect_to(@cliente, :notice => 'Cliente was successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /clientes/1
  # DELETE /clientes/1.xml
  def destroy
    @cliente = Cliente.find(params[:id])
    @cliente.destroy

    respond_to do |format|
      format.html { redirect_to(clientes_url) }
      format.xml  { head :ok }
    end
  end

# Metodo encargado de crearle la sesion al cliente despues que ha hecho el login en google
  def sesion_clientes
    @email=params['openid.ext1.value.email']
    cliente= Cliente.find(:first, :conditions => [" correo = ?", @email ])
   
    if cliente
     session[:cliente_correo] = cliente.correo
     session[:cliente_nombre] = cliente.nombre + " " + cliente.apellido
     session[:cliente_id] = cliente.id
     session[:type] = "cliente"
#     flash[:notice] = cliente.nombre + " " + cliente.apellido + " (" + session[:user] + ") ha iniciado sesion!"
     
#     redirect_to :controller => 'clientes', :action => 'show', :id => cliente.id
    else
    flash[:notice] = " El email \"" + @email + "\" no esta registrado!"
    redirect_to :controller => 'clientes', :action => 'login'
    end
  end
#Metodo que Finaliza la sesion del cliente
  def fin_sesion
    session[:cliente_correo] = nil
    session[:cliente_id] = nil
    session[:type] = nil
 
    redirect_to :controller => 'application', :action => 'home'
       flash[:notice] = 'Se ha terminado la sesion'
  end

#Metodo que muestra la opciones que tiene el cliente
#despues que selecciona entrar como clietne
  def login
    render :template => "clientes/login"
  end

  def buscar_tracking
#    @ordenes= Orden.find_all_by_tracking ();
#     redirect_to :controller => 'ordens', :action => 'tracking'
     
  end

#  Metodo que redirecciona a google a los usuarios nuevos
#  y despues lo devuelve al metodo new para que ingrese sus datos por primera vez
  def usuario_nuevo
    redirect_to "https://www.google.com/accounts/o8/ud
?openid.ns=http://specs.openid.net/auth/2.0
&openid.ns.pape=http://specs.openid.net/extensions/pape/1.0
&openid.ns.max_auth_age=300
&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select
&openid.identity=http://specs.openid.net/auth/2.0/identifier_select
&openid.return_to=http://"+local_ip+":3000/clientes/new
&openid.realm=http://"+local_ip+":3000/clientes/new
&openid.assoc_handle=ABSmpf6DNMw
&openid.mode=checkid_setup
&openid.ui.ns=http://specs.openid.net/extensions/ui/1.0
&openid.ui.mode=popup
&openid.ui.icon=true
&openid.ns.ax=http://openid.net/srv/ax/1.0
&openid.ax.mode=fetch_request
&openid.ax.type.email=http://axschema.org/contact/email
&openid.ax.type.firstname=http://axschema.org/namePerson/first
&openid.ax.type.lastname=http://axschema.org/namePerson/last
&openid.ax.required=email,firstname,lastname"
  end

#  Metodo que redirecciona a google para que el cliente haga su login y despues
#  lo devuelve al metodo sesion_clientes para que cree su sesion
   def usuario_registrado
     redirect_to "https://www.google.com/accounts/o8/ud
?openid.ns=http://specs.openid.net/auth/2.0
&openid.ns.pape=http://specs.openid.net/extensions/pape/1.0
&openid.ns.max_auth_age=300
&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select
&openid.identity=http://specs.openid.net/auth/2.0/identifier_select
&openid.return_to=http://"+local_ip+":3000/sesion_clientes
&openid.realm=http://"+local_ip+":3000/sesion_clientes
&openid.assoc_handle=ABSmpf6DNMw
&openid.mode=checkid_setup
&openid.ui.ns=http://specs.openid.net/extensions/ui/1.0
&openid.ui.mode=popup
&openid.ui.icon=true
&openid.ns.ax=http://openid.net/srv/ax/1.0
&openid.ax.mode=fetch_request
&openid.ax.type.email=http://axschema.org/contact/email
&openid.ax.required=email"
  end

end
